package com.itlong.cloud.equip.sdk;

import com.itlong.cloud.POJO.DTO.property.PropertyEquipGetDTO;
import com.itlong.cloud.POJO.DTO.sdk.SDKEquipGetByPageDTO;
import com.itlong.cloud.POJO.DTO.sdk.SDKEquipGetPageDTO;
import com.itlong.cloud.POJO.DTO.sdk.SDKUnitInfoSaveDTO;
import com.itlong.cloud.POJO.PO.DeviceElevatorAuthPO;
import com.itlong.cloud.POJO.PO.DeviceElevatorBridgeInfoPO;
import com.itlong.cloud.POJO.PO.DeviceElevatorInfoPO;
import com.itlong.cloud.POJO.VO.property.PropertyEquipRecordGetVO;
import com.itlong.cloud.POJO.VO.sdk.SDKJDAttriButeVO;
import com.itlong.cloud.utils.page.Page;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      SDK项目服务层暴露接口
 * </desc>
 *
 * @createDate 2017/11/14
 */
@FeignClient(name = "equip-service")
public interface ISDKJdServiceClient {

    /**
     * <desc>
     *      京东绑定设备id
     * </desc>
     *
     * @param deviceId
     * @param deviceUnique
     * @param type
     * @return
     * @author Jiaqi.X
     * @createDate 2020/08/11
     */
    @PostMapping("sdkServer/equip/jd/bindDeviceId")
    Integer bindDeviceId(@RequestParam("deviceId") String deviceId,@RequestParam("deviceUnique") String deviceUnique,@RequestParam("type") Integer type);

    /**
     * <desc>
     *      检测设备id是否已经被绑定
     * </desc>
     *
     * @param deviceId
     * @param deviceUnique
     * @return
     * @author Jiaqi.X
     * @createDate 2020/08/11
     */
    @PostMapping("sdkServer/equip/jd/checkBindDeviceId")
    Integer checkBindDeviceId(@RequestParam("deviceId") String deviceId,@RequestParam("deviceUnique") String deviceUnique);

    /**
     * <desc>
     *      初始化京东获取设备属性对象
     * </desc>
     *
     * @param deviceId
     * @param deviceType
     * @return
     * @author Jiaqi.X
     * @createDate 2020/08/11
     */
    @PostMapping("sdkServer/equip/jd/initAtrributeVO")
    SDKJDAttriButeVO initAtrributeVO(@RequestParam("deviceId") String deviceId,@RequestParam("deviceType") Integer deviceType);

    /**
     * <desc>
     *      京东设备id
     * </desc>
     *
     * @param deviceId
     * @return
     * @author jiaqi.X
     * @createDate 2020/08/17
     */
    @PostMapping("sdkServer/equip/jd/getHwDeviceId")
    String getHwDeviceId(@RequestParam("deviceId") String deviceId,@RequestParam("deviceType") Integer deviceType);

    /**
     * <desc>
     *      京东设备id
     * </desc>
     *
     * @param deviceUnique 设备编号
     * @param deviceType 设备类型
     * @return
     * @author caoshuai
     * @createDate 2020/09/07
     */
    @PostMapping("sdkServer/equip/jd/getDeviceInfo")
    Map<String, Object> getDeviceInfo(@RequestParam("deviceUnique") String deviceUnique, @RequestParam("deviceType") Integer deviceType);

    /**
     * <desc>
     *      京东设备id
     * </desc>
     *
     * @param jdDeviceId JD设备编号
     * @param deviceType 设备类型
     * @return
     * @author caoshuai
     * @createDate 2020/09/07
     */
    @PostMapping("sdkServer/equip/jd/getDeviceInfoByJDDeviceId")
    Map<String,Object> getDeviceInfoByJDDeviceId(@RequestParam("jdDeviceId") String jdDeviceId, @RequestParam("deviceType") Integer deviceType);
}